Image upscaling typically involves magnifying an entire image or a portion of an image. For example, an image upscaled by a factor of two may have a 2×2 block of pixels corresponding to each pixel in the original image. Pixel values in each 2×2 block of the upscaled image are predicted from pixel values in the original image.
The pixels may be predicted by traditional methods such as bilinear interpolation and bi-cubic interpolation, which involve the use of weighted sums of neighboring pixels to predict the pixel values. However, these traditional methods tend to produce blurring in upscaled images. The blurring is especially noticeable at edges of the upscaled images.
Neural networks can be used to perform image upscaling. The neural networks can be trained to predict values for the upscaled image.
A neural network is typically trained to fit models that produce images having a high peak signal to noise ratio (PSNR). The standard error measure used in neural network training is the sum of square error (SSE). The SSE is inversely related to the PSNR between the upscaled image and a true representation of the image (e.g., a true high resolution image).
Although the neural networks tend to reduce edge blurring, they tend to produce visual artifacts near edges and textured regions. These artifacts can degrade image quality.